Dette spørgsmål har allerede svar her: Vend en streng i Python (29 svar) Lukket for 4 år siden. Jeg forsøger at vende en streng og bruge nedenstående kode, men den resulterende omvendte listeværdi er Ingen. Koden: str_a = 'Dette er omrøring' rev_word = str_a.split () rev_word = rev_word.reverse () rev_word = ''. slutte sig til (rev_word) Det returnerer TypeError. Hvorfor?
2021-01-15 08:10:23
.reverse () returnerer Ingen. Derfor skal du ikke tildele det til en variabel. Brug dette i stedet: stra = 'Dette er en streng' revword = stra.split () revword.reverse () revword = ''. deltag (revword) Jeg har kørt koden på IDEOne for dig, så du kan se output. (Bemærk også, at output er stringaisThis; du vil måske bruge '' .join (revword) med et mellemrum i stedet.) Bemærk også, at den metode, du har angivet, kun vender ordene, ikke teksten. @ ron.rothman leverede et link, der detaljerer, hvordan man vender en streng i sin helhed. | Dette er min personlige foretrukne måde at vende en streng på: stra = "Dette er en streng" revword = stra [:: - 1] print (revword) # "gnirts a si sihT eller, hvis du vil vende ordordren: revword = "" .forbinde (stra.split () [:: - 1]) print (revword) # "streng a er dette" :) | Forskellige tilbageførsler på en streng: instring = 'Dette er en streng' reversedstring = instring [:: - 1] udskriv reverseret streng # gnirts a si sihT wordsreversed = ''. slutte (ord [:: - 1] for ord i instring.split ()) udskriv ordomvendt # sihT si a gnirts revwordorder = ''. sammenføj (ord for ord i instring.split () [:: - 1]) udskriv revwordorder # string a er This revwordandorder = ''. sammenføj (ord [:: - 1] for ord i instring.split () [:: - 1]) udskriv revwordandorder # gnirts a si sihT | Til fremtidig reference, når et objekt har en metode som []. Omvendt () udfører det generelt den handling på objektet (dvs. listen er sorteret og returnerer intet, Ingen) i modsætning til indbyggede funktioner som sorteret, der udfører en handling på et objekt og returnerer en værdi (dvs. den sorterede liste) | >>> s = 'dette er en streng' >>> s [:: - 1] 'gnirts a si siht' >>> ''. tilslut (omvendt (e)) 'gnirts a si siht' | For-sløjfen gentager strengen fra slutningen (sidste bogstav) til start (første bogstav) >>> s = 'Du kan også prøve dette:]' >>> rev = '' >>> for i inden for rækkevidde (len (s) - 1, -1, -1): ... rev + = s [i] >>> rev ']: oot siht yrt nac uoY' | Baseret på kommentarer og andre svar: str_a = 'dette er en streng' rev_word = ''. sammenføj (omvendt (str_a.split ())) Metodekædning fungerer trods alt i Python ... | List omvendt kan gøres på mere end én måde. Som nævnt i tidligere svar er to meget fremtrædende, en med omvendt () funktion og to med udskæring. Jeg giver nogle indblik i, hvilken vi skal foretrække. Vi skal altid bruge reverse () -funktionen til tilbageførsel af en Python-liste. To grunde, en vending på stedet og to hurtigere end andre. Jeg har nogle tal, der understøtter mit svar, I [15]: len (l) Ud [15]: 1000 I [16]:% timeit -n1 l.omvendt () 1 sløjfer, bedst af 3: 7,87 µs pr. Løkke I [17]:% timeit -n1 l [:: - 1] 1 sløjfer, bedst af 3: 10 µs pr. Løkke For 1000-heltalslisten fungerede reverse () -funktionen bedre sammenlignet med udskæring. | Er det ikke det svar, du leder efter? Gennemse andre spørgsmål mærket python, eller stil dit eget spørgsmål.